package com.xyht.sca_s.student_manage_system.modules.welcomeNewStudent.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xyht.sca_s.student_manage_system.common.commonReturn.ResponseResult;
import com.xyht.sca_s.student_manage_system.modules.welcomeNewStudent.entity.SmsWnsStudentLoanApply;
import com.xyht.sca_s.student_manage_system.modules.welcomeNewStudent.entity.req.SmsWnsStudentLoanApplyExportReq;
import com.xyht.sca_s.student_manage_system.modules.welcomeNewStudent.entity.req.SmsWnsStudentLoanApplyReq;
import com.xyht.sca_s.student_manage_system.modules.welcomeNewStudent.entity.req.SmsWnsStudentLoanDetailReq;

import javax.servlet.http.HttpServletResponse;
import java.util.concurrent.Future;

/**
 * <p>
 * 助学贷款申请表 服务类
 * </p>
 *
 * @author XYHT
 * @since 2024-03-20
 */
public interface SmsWnsStudentLoanApplyService extends IService<SmsWnsStudentLoanApply> {

    ResponseResult addStudentLoanApply(SmsWnsStudentLoanApplyReq req, String userId);

    ResponseResult cancelStudentLoanApply(SmsWnsStudentLoanApplyReq req, String userId);

    ResponseResult allowStudentLoanApply(SmsWnsStudentLoanDetailReq req, String userId);

    ResponseResult getStudentLoanApplyList(Integer pageNum, Integer pageSize, Integer applyType, String searchStr, String userId);

    ResponseResult getStudentLoanApplyDetail(String id, String userId);

    ResponseResult getStudentLoanApplyOriginSettingProcess();

    ResponseResult selectAllStudentLoanApply(Integer pageNum, Integer pageSize, Integer allowStatus, String searchStr);

    Future<ResponseResult> exportStudentLoanApply(SmsWnsStudentLoanApplyExportReq req, HttpServletResponse response);

    ResponseResult forcedFinishStudentLoanApply(SmsWnsStudentLoanDetailReq req, String userId);

    ResponseResult forcedTorsionStudentLoanApply(SmsWnsStudentLoanDetailReq req);

    ResponseResult replaceApplyStudentLoanApply(String userId, SmsWnsStudentLoanDetailReq req);

    ResponseResult forcedRejectStudentLoanApply(SmsWnsStudentLoanDetailReq req, String userId);

    ResponseResult deletedStudentLoanApply(String id);
}
